/**
 * 
 */
package fr.epsi.game;

import fr.epsi.game.data.Coordonnee;
import fr.epsi.game.errors.RuleException;

/**
 * Interface d'un jeu tour a tour de type Morpion ou Othello Chaque joueur joue
 * a son tour.
 * 
 * @author spt001
 * 
 */
public interface GameController {
	/**
	 * Cette methode est appelee par la vue lorsque l'utilisateur joue une case
	 * 
	 * @param coord
	 *            La coordonnee de la case jouee
	 * @throws RuleException
	 *             En cas d'infraction aux regles du jeu
	 */
	public void jeJoue(Coordonnee coord) throws RuleException;

	/**
	 * Cette methode est appelee par le protocole reseau lorsque l'adversaire
	 * joue une case
	 * 
	 * @param coord
	 *            La coordonee de la case jouee
	 * @throws RuleException
	 *             En cas d'infraction aux regles du jeu
	 */
	public void ilJoue(Coordonnee coord) throws RuleException;

	/**
	 * Renvoie le modele associe a ce controller
	 * 
	 * @return Le modele
	 */
	public GameModel getModel();

}